"""
语法:
    1. 强制等待  sleep(时间:s)
    2. 隐式等待  driver.implicity_wait(时间:s)
        - 最大等待网页加载完成的时间
        - 针对跳转页面
    3. 显示等待
        WwbDriverWait(driver,timeout,poll_frequency).until()
            - driver: 浏览器驱动的对象
            _ timeout: 最大等待时间
            - poll_frequency: 查询间隔/轮询频次
            - until: 直到method执行成功为止
                - method: 执行的方法
                    - 将方法(函数)当做参数传入
                - msg: 执行失败返回信息
"""
# 1. 导入需要的包
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

# 2. 创建浏览器对象，并打开指定网页
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.baidu.com")

# 3. 元素定位+元素操作
WebDriverWait(driver, 10).until(lambda x: x.find_element(By.ID, "kw")).send_keys("显式等待")
"""
lambda x: x.find_element(By.ID, "kw")相当于
def x(driver):
    return driver.find_element(By.ID, "kw")
"""
# 4. 关闭浏览器
time.sleep(3)
driver.quit()